home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / mibiisa_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  99 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. #
  7. # XXXXXX This script should be rewritten to actually check for the overflow.
  8. #
  9.  
  10.  
  11. if(description)
  12. {
  13.  script_id(11335);
  14.  script_bugtraq_id(4932, 4933);
  15.  script_version ("$Revision: 1.9 $");
  16.  script_cve_id("CAN-2002-0797", "CAN-2002-0796");
  17.  
  18.  name["english"] = "mibiisa overflow";
  19.  
  20.  script_name(english:name["english"]);
  21.  
  22.  desc["english"] = "
  23. The remote host is running mibiisa. 
  24.  
  25. There is a buffer overflow in older versions of
  26. this software, which may allow an attacker to gain
  27. a root shell on this host
  28.  
  29. *** Nessus did not actually check for this vulnerability,
  30. *** so this might be a false positive
  31.  
  32. Solution : See Sun security bulletin #00219";
  33.  
  34.  
  35.  script_description(english:desc["english"]);
  36.  
  37.  summary["english"] = "Checks for the presence of mibiisa";
  38.  script_summary(english:summary["english"]);
  39.  
  40.  script_category(ACT_GATHER_INFO);
  41.  
  42.  script_copyright(english:"This script is Copyright (C) 2003 Renaud Deraison");
  43.  family["english"] = "Gain root remotely";
  44.  script_family(english:family["english"]);
  45.  script_dependencie("snmp_default_communities.nasl", "os_fingerprint.nasl");
  46.  exit(0);
  47. }
  48.  
  49.  
  50. os = get_kb_item("Host/OS/icmp");
  51. if( os )
  52. {
  53.  if("Solaris 9" >< os)exit(0);
  54. }
  55.  
  56.  
  57. #--------------------------------------------------------------------#
  58. # Forges an SNMP GET NEXT packet                                     #
  59. #--------------------------------------------------------------------#
  60. function get_next(community, id, object)
  61. {
  62.  len = strlen(community);
  63. #display("len : ", len, "\n");
  64.  len = len % 256;
  65.  
  66.  tot_len = 4 + strlen(community) + 12 + strlen(object) + 4;
  67. # display(hex(tot_len), "\n");
  68.  _r = raw_string(0x30, tot_len, 0x02, 0x01, 0x00, 0x04, len);
  69.  o_len = strlen(object) + 2;
  70.  
  71.  a_len = 13 + strlen(object);
  72.  _r = _r + community + raw_string( 0xA1,
  73.     a_len, 0x02, 0x01, id,   0x02, 0x01, 0x00, 0x02,
  74.     0x01, 0x00, 0x30,o_len) + object + raw_string(0x05, 0x00);
  75. # display("len : ", strlen(_r), "\n");
  76.  return(_r);
  77. }
  78.  
  79.  
  80.  
  81. community = get_kb_item("SNMP/community");
  82. if(!community)community = "public";
  83.  
  84.  
  85. port = 32789;
  86.  
  87. soc = open_sock_udp(port);
  88.  
  89. first = raw_string(0x30, 0x82, 0x00, 
  90.            0x0B, 0x06, 0x07, 0x2b, 0x06, 0x01, 0x02, 0x01,
  91.            0x01, 0x01);
  92.           
  93. id = 2;
  94. req = get_next(id:id, community:community, object:first);
  95.  
  96. send(socket:soc, data:req);
  97. r = recv(socket:soc, length:1025);
  98. if(strlen(r) > 0)security_hole(port:port, proto:"udp");
  99.